import {getLocalStorageObject} from '@/utils'
/**
 * hasPerm 权限指令
 * 指令用法：
 *  - 在需要控制 hasPerm 级别权限的组件上使用 v-hasPerm:[perms] , 如下：
 *    <i-button v-action:add >添加用户</a-button>
 *    <a-button v-action:delete>删除用户</a-button>
 *    <a v-action:edit @click="edit(record)">修改</a>
 *
 *  - 当前用户没有权限时，组件上使用了该指令则会被隐藏
 *  - 当后台权限跟 pro 提供的模式不同时，只需要针对这里的权限过滤进行修改即可
 */

export const hasPermi = {
    install (Vue, options) {
        // 自定义指令v-has：
        Vue.directive('hasPermi', {
            mounted (el, binding) {
                if (!checkPermission(binding.value)) {
                    el.parentNode.removeChild(el)
                }
                // 权限检查方法
                function checkPermission (value) {
                    let isExist = false
                    const permissions = getLocalStorageObject('permissions')
                    // 判断是否按钮有权限
                    if (permissions.includes(value[0])) {
                        isExist = true
                    }
                    return isExist
                }
            }
        })
    }
}
export default hasPermi
